Skip to content

Use namespaced middleware ops; tidy two request params - #600

Merged
bbatsov merged 1 commit into
masterfrom
namespaced-ops
Jul 12, 2026
Merged

bbatsov merged 1 commit into
masterfrom
namespaced-ops

Conversation

@bbatsov

@bbatsov bbatsov commented Jul 12, 2026

Copy link
Copy Markdown
Member

Three improvements from auditing the middleware request/response shapes:

  • Namespaced op names (breaking). Use refactor-nrepl's refactor/find-symbol, refactor/clean-ns, etc. instead of the bare names. refactor-nrepl registers every op under both forms, treats the namespaced one as canonical, and plans to drop the bare names; namespacing also avoids op-name collisions with other middleware. Prefixing is centralized in cljr--create-msg and cljr--op-supported-p. Requires refactor-nrepl 3.13.0+ (injected version bumped to 3.14.0; README updated).
  • ignore-errors fix. When cljr-ignore-analyzer-errors is nil (default), the request sent a nil value that nREPL drops on the wire, leaving the middleware on its lenient default. It now sends an explicit false, so the strict behavior the option documents actually takes effect. Note: a project with an unanalyzable namespace will now surface a warning by default instead of silently skipping it.
  • Drop the obsolete language-context param from the suggest-libspecs request (superseded by buffer-language-context/input-language-context in refactor-nrepl 3.7.0).

Validated live against refactor-nrepl 3.14.0: op-support, version, rename, clean-ns and suggest-libspecs all work under the namespaced ops. Reviewed for prefix completeness (every op path routes through the two centralized funnels — no bare/namespaced drift, no double-prefix).

Three improvements found while auditing the middleware request/response
shapes:

- Use refactor-nrepl's namespaced op names (refactor/find-symbol, etc.)
  instead of the bare ones. refactor-nrepl registers every op under both
  forms, treats the namespaced one as canonical, and plans to drop the
  bare names; namespacing also avoids op-name collisions with other
  middleware. Prefixing is centralized in cljr--create-msg and
  cljr--op-supported-p (plus the one inline extract-definition request).
  Requires refactor-nrepl 3.13.0+; the injected version is now 3.14.0.

- Send an explicit "false" for ignore-errors when
  cljr-ignore-analyzer-errors is nil, instead of a nil value that nREPL
  drops (leaving the middleware on its lenient default). The strict
  behavior the option documents now actually takes effect.

- Drop the obsolete language-context param from the suggest-libspecs
  request; refactor-nrepl has read buffer-language-context /
  input-language-context since 3.7.0.

Validated live against refactor-nrepl 3.14.0: op-support, version,
rename, clean-ns and suggest-libspecs all work under the namespaced ops.
@bbatsov
bbatsov merged commit f11383b into master Jul 12, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant